############################################################## 
## MOD Title:  My Audio
## MOD Author: Demag (http://torrentpier.info)
## MOD Description:    (   http://site.com/file.mp3)     .     ,  (     ),  ,
      ,    ,    , ,    . 
## Installation Level: Easy 
## Installation Time: 10 Minutes 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

#
#-----[ COPY ]------------------------------------------
#
copy files which are included to folders on your FTP!

# 
#-----[ SQL ]------------------------------------------ 
# 
CREATE TABLE `bb_audio` (
`id` int(11) NOT NULL auto_increment,
`user` varchar(255) NOT NULL,
`added` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`file` text NOT NULL,
`date` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=cp1251;



#
#-----[ OPEN ]------------------------------------------
#
language/lang_russian/lang_admin.php

#
#-----[ FIND ]------------------------------------------
#
  

#
#-----[ BEFORE, ADD ]------------------------------------------ 
# 
// audio vars
$lang['PLAYLIST'] = '';
$lang['ADD_NEW_SONG'] = '  ';
$lang['SUBMIT_AUDIO'] = ' -';
$lang['AUDIO'] = '';
$lang['WHO_ADDED'] = ' ';
$lang['WHO_UPLOADED'] = ' ';
$lang['ADD_SONG'] = '';
$lang['AUDIO_ALL'] = ' ';
$lang['AUDIO_NAME'] = ' ';
$lang['AUDIO_PATH'] = '  mp3  (http://.mp3)';
$lang['LAST_AUDIO'] = '. ';
$lang['TRACK_NAME'] = '';
$lang['WHO_ADD'] = '';
$lang['CHARS_LEFT'] = ' ';
// end

#
#-----[ OPEN ]------------------------------------------
#
language/lang_russian/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
  

#
#-----[ BEFORE, ADD ]------------------------------------------ 
# 
// audio vars
$lang['PLAYLIST'] = '';
$lang['ADD_NEW_SONG'] = '  ';
$lang['SUBMIT_AUDIO'] = ' -';
$lang['AUDIO'] = '';
$lang['WHO_ADDED'] = ' ';
$lang['WHO_UPLOADED'] = ' ';
$lang['ADD_SONG'] = '';
$lang['AUDIO_ALL'] = ' ';
$lang['AUDIO_NAME'] = ' ';
$lang['AUDIO_PATH'] = '  mp3  (http://.mp3)';
$lang['LAST_AUDIO'] = '. ';
$lang['TRACK_NAME'] = '';
$lang['WHO_ADD'] = '';
$lang['CHARS_LEFT'] = ' ';
// end

#
#----[ OPEN ]------------------------------------------ 
#
ajax.php

#
#----[ FIND ]------------------------------------------ 
#
		'view_post'         => array('guest'),

#-----[ AFTER, ADD ]------------------------------------------
#
                                'create_song'        => array('user'),
                                'delete_song'        => array('user'),
                                     'song_del' => array('user'),
                                     'last_song' => array('user'),
#
#----[ FIND ]------------------------------------------ 
#
			    
}

#
#-----[ BEFORE ADD ]------------------------------------------
#
function delete_song()
{
  global $db, $lang, $bb_cfg;
  $song_id = (int) $this->request['song_id'];
  $sql = "DELETE FROM bb_audio
          WHERE id = ".$song_id;
  if(!$result = $db->sql_query($sql))
  {
    ajax_die('Could not delete song');
  }
  $this->response['bid'] = $song_id;
}
 function create_song()
{
  global $db, $lang, $bb_cfg, $userdata;
  $file = (string) $this->request['song_file'];
  $name    = (string) $this->request['song_name'];
  $user_id = (int) $this->request['user_id'];;
  $date = (string) $this->request['date'];
// misuc values
  if ((!$file) || (!$name)) {
   ajax_die('    !');
  }

  $max_id = $db->sql_query("SELECT MAX(id) as id FROM bb_audio");
  while ($max = $db->sql_fetchrow($max_id))
  {
   $maxid = $max['id'];
  }
  $db->query("INSERT bb_audio SET
              id = $maxid + 1,
              name   = '$name',
              file     = '$file',
              date = '$date',
              user = $user_id,
              added = $user_id
            ");
 $this->response['bid']  = $maxid + 1;
 $this->response['html'] = '<td>'.$name.'</td><td>'.get_username($user_id).'</td><td class="row1">'.$date.'</td>';
}
// User last song
    function last_song()
    {
        global $db, $bb_cfg, $lang;
        $user_id = (int) $this->request['user_id'];
        $row = $db->fetch_row("
                    SELECT MAX(id), name, file
                    FROM  bb_audio
                    WHERE user = $user_id
                    LIMIT 1" );
                   // define bad words
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);
 // filter bad song name
$row['name'] = preg_replace($orig_word, $replacement_word, $row['name']);
 // main value
$last_song = $row['file'];
$last_song_name = $row['name'] ? $row['name'] : ''.$lang['No'].'';
$lang_song = $lang['ALL_SONG'];
$response = $last_song ? "<span class=\"txtb\" title=\"LAST ADDED SONG\">&nbsp;$last_song_name</span>&nbsp; - <object type=\"application/x-shockwave-flash\" lang=\"ru\" data=\"player/dewplayer.swf?mp3=$last_song\" width=\"197\" height=\"20\">
<param name=\"movie\" value=\"player/dewplayer.swf?mp3=$last_song\"/></object>&nbsp;(<a href=\"audio_all.php\">$lang_song</a>)" : ''.$lang['None'].'&nbsp;(<a href="audio_all.php">'.$lang_song.'</a>)';
############   ###################
        $this->response['post_id'] = (int) $this->request['post_id'];
        $this->response['html'] = $response;
    }

//end


#
#-----[ OPEN ]------------------------------------------
#
includes/ucp/usercp_viewprofile.php

#
#----[ FIND ]------------------------------------------ 
#
print_page('usercp_viewprofile.tpl');

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// music block  by demag
$aud = $db->sql_query("SELECT * FROM bb_audio WHERE user = $user_id ORDER BY id DESC");
while( $row = $db->sql_fetchrow($aud) )
{
	$name = $row['name'];
	$file = $row['file'];
	$id = $row['id'];
	$date = $row['date'];
	$added = $row['added'];
	$username = get_username($added);
	$template->assign_block_vars('audio',array(
								 'NAME' => $name,
								 'FILE' => $file,
								 'ID' => $id,
								 'SONG_ID' => 'id="song_'.$id.'"',
		                         'SONG_ADD_FROM' => '<b><a href="audio.php?usadd='.$id.'" style="color:#999"></a></b>',
		'SONG_DEL_IMG' => '<img src="images/stop.png" title="" class="clickable" onclick="ajax.song_del('.$id.'); return false;" align="absmiddle"">&nbsp;',
		'DATE' => $date,
		'USERNAME' => $username ));
}
$count_music = $db->sql_query("SELECT COUNT(user) AS added_song FROM bb_audio WHERE user = $user_id");
$res_count_mus = $db->sql_fetchrow($count_music);
$count_music = $res_count_mus['added_song'];
if (!$count_music)
{
$template->assign_block_vars('AUDIONOT',array());
}
// music block end
#
#----[ OPEN ]------------------------------------------ 
#
templates/default/usercp_viewprofile.tpl

#
#-----[    (!  !      !!!!!!!! ]------------------------------------------
#
<table class="forumline" width="98%" align="center" cellspacing="1" cellpadding="2" border="1">
	<!-- BEGIN AUDIONOT --><td class="row1 tCenter pad_8">{L_NONE}</td><!-- END AUDIONOT -->
<!-- BEGIN audio -->
<tr><td {audio.SONG_ID}><b><strong style="margin-left:4px;">{L_TRACK_NAME}: </strong><br /><font color="#666666"><b><h3>{audio.NAME}</h3></b> <object type="application/x-shockwave-flash" data="http://torrent.datasvit.km.ua/player/ump3player_500x70.swf" height="52" width="350"><param name="wmode" VALUE="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://torrent.datasvit.km.ua/player/ump3player_500x70.swf" /><param name="FlashVars" value="way={audio.FILE}&amp;swf=http://torrent.datasvit.km.ua/player/ump3player_500x70.swf&amp;w=350&amp;h=52&amp;time_seconds=0&amp;autoplay=0&amp;q=1&amp;skin=http://torrent.datasvit.km.ua/player/player_ajax.swf&amp;volume=100&amp;comment={audio.NAME}" /></object>
                <br /><!-- IF SHOW_ADMIN_OPTIONS || EDIT_PROF -->
 <form action=song_edit.php method=post>
<input type=hidden name=id value="{audio.ID}"><input type=text name=coment_upd  size="65" value="{audio.FILE}"><input type=submit name=mode  value=edit></td></form></td><!-- ENDIF --><br />
				<td {audio.SONG_ID}><!-- IF SHOW_ADMIN_OPTIONS || EDIT_PROF -->{audio.SONG_DEL_IMG}<!-- ENDIF --> </font>
<br /><b>: {audio.DATE}<br />
{L_POSTED}: {audio.USERNAME}</b><br/>
<!-- IF not EDIT_PROF -->{audio.SONG_ADD_FROM} <!-- ENDIF -->
</b></td></td></tr>
     <script type="text/javascript">
 ajax.song_del = function(id) {
    ajax.exec({
       action : 'song_del',
       id     : id
    });
 };
 ajax.callback.song_del = function(data) {
    var id = data.id;
    $('td#song_'+id).hide("slow");
 };
</script>
<!-- END audio -->
<!-- IF EDIT_PROF -->
<table cellspacing="1" border="0" align="center" cellpadding="1" class="forumline w100 null_ratio">
      <tr>
         <td align="center" nowrap="nowrap" class="catHead gen clickable bold" onclick="toggle_block('audio_add'); return false"><span class="thRel">{L_ADD_NEW_SONG}</span></a></td>
      </tr>
      <tr id="audio_add" style="display: none;">
         <td class="row2">

<table cellpadding="0" cellspacing="0" align="center">
<td width='300px' valign="top">
<table class="center" border="1" width="486px;" class="center">
<tr>
<td align="center" width="130px;"><font style="color:#666666">{L_AUDIO_PATH}</font></td>
<td align="center" width="350px;">
<br>
<form action="audio.php" method="post">
<input name="file" value="" type="text" size="60">
<input name="added" type="hidden" value="{PROFILE_USER_ID}"><br><br>
</td>
</tr>
<tr>
<td align="center" width="130px;"><font style="color:#666666">{L_AUDIO_NAME}: </font></td>
<td align="center" width="350px;">
<br>
<script type="text/javascript" src="/misc/js/jquery.limit.js"></script>
<input name="name" class="input" value="" maxlength="60" type="text" size="60">
<br> <b class="center small">{L_TRACK_NAME_EXP}</b>
<div style="color:#666666; margin-left:15px;" align="center"><span id="charsLeft"></span>&nbsp;{L_CHARS_LEFT}.</div>
<script type="text/javascript">
$(document).ready(function(){
$('.input').limit('60','#charsLeft');
});
</script>
<br>
</td>
</table>
<table class="center" width="486" border="1" >
<tr>
<td align="center" style="border-top-style:none;">
<div style="margin-bottom:3px;"><input name="submit" type="submit" value="{L_SUBMIT_AUDIO}"></div>
</form>
</td>
</tr>
</table>
</table>
<hr>
<!-- ENDIF -->
</table>
</table>

#
#----[ OPEN ]------------------------------------------ 
#
template/default/viewtopic.tpl

#
#----[      (  <!-- IF LOGGED_IN --> ]------------------------------------------ 
#

 <script type="text/javascript">
f_list = false;
function last_song(pid, uid) {
  f_list = false;
  $('#last_song_' + pid).toggle();
  if (!f_list) ajax.last_song(pid, uid);
  return false;
}
ajax.last_song = function(pid, uid) {
  ajax.exec({
    action  : 'last_song',
    user_id : uid,
    post_id : pid
  });
};
ajax.callback.last_song = function(data){
  $('#last_song_'+data.post_id+' td').html(data.html);
  f_list = true;
};
</script>


#
#----[ FIND ]------------------------------------------ 
#
		<!-- IF postrow.POSTER_AVATAR --><p class="avatar">{postrow.POSTER_AVATAR}</p><!-- ENDIF -->

#
#-----[ AFTER, ADD ]------------------------------------------
#
<hr />
<div>
<table class="tCenter w100">
<td><span class="txtb" style="margin: 5px 0 4px;" onclick="last_song({postrow.POST_ID}, {postrow.POSTER_ID})"><b title="  ">{L_LAST_AUDIO}</b></span></td>
</table>
<span id="last_song_{postrow.POST_ID}" style="display:none"><table class="tCenter w100"><td class="row1"><b>{L_Loading}</b></td></table></span>
</div>
<hr />
#
#----[ OPEN ]------------------------------------------ 
#
templates/admin/admin_users.tpl

#
#----[    ....  ]------------------------------------------ 
#
  audio.php\audiosearch.php\audio_all.php
 > 
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.' . $phpEx);
>   
define('IN_PHPBB',   true);
define('BB_SCRIPT', 'index');
define('BB_ROOT', './');
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require(BB_ROOT ."common.$phpEx");
<


#
#-----[ EOM ]------------------------------------------ 
# 

